package com.example.object;

import com.example.globject.GLSquare;
import com.example.motion.Movable;
import com.example.shape.Square;

import org.jbox2d.common.Vec2;
import org.jbox2d.dynamics.Body;
import org.jbox2d.dynamics.World;
/**
 * Created by Lucas on 06/06/13.
 */
public class GameShape implements Movable{

    /**
     * The action to return when an object is touched
     */
    protected int _userData;
    /**
     * Define if the gl handler is initiate
     */
    protected boolean _handlerInitiate;
    /**
     * Draw the shape into the GLSurfaceScreen
     */
    public void draw(){
       // do nothing
   }

    /**
     * set the OpenGL resource to the openGL Object
     * @param aPositionHandle
     * @param aTextureHandle
     * @param uMVPMatrixHandle
     * @param vMatrix
     * @param projMatrix
     */
    public void setGLHandler(int aPositionHandle, int aTextureHandle, int uMVPMatrixHandle, float[] vMatrix, float[] projMatrix) {}

    /**
     * define is an object is touched
     * @param touch coordinate of input touch
     * @return true if the object is touched
     */
    public boolean isTouched(Vec2 touch){
        return false;
    }



    public int getUserData() {
        return _userData;
    }

    /**
     * return a boolean to know if the object is movable
     * @return false
     */
    public boolean isMovable(){
        return false;
    }

    /**
     * return a boolean to know of the object is rotatable
     * @return false
     */
    public boolean isRotatable(){
        return false;
    }

    @Override
    public void moveOf(float ofX, float ofY){
        // do nothing
    }

    @Override
    public void moveTo(float toX, float toY) {
        // do nothing
    }

    @Override
    public void rotate(float angle) {
        // do nothing
    }

    public void rotate(){
        // do nothing
    }

    public Square getSquare(){
        return null;
    }

    public GLSquare getGLSquare(){
        return null;
    }

    public boolean isTouchable() {
        return false;
    }

    public void addToWorld(World world) {
        // do nothing
    }

    public void calculateNextCoordinate() {
        // do nothing
    }

    public Body getBody() {
        return null;
    }

    public boolean handlerInitiate() {
        return _handlerInitiate;
    }
}

